Air gapping is a security measure that involves isolating a computer from an external connection. For example, an air gapped computer is one that is physically segregated and incapable of connecting wirelessly or physically with other computers or network devices. Air gapped systems and networks are used to protect many types of critical systems, such as those utilized in industries including financial, military, government, utility facilities, and the like.
Preventing a computer or a network from accessing an external network significantly limits the productivity of users using such a computer or network. For example, an application executed on an “air gapped” computer cannot access any resource over the Internet. To do so, the user would need to use a different computer having access to the Internet.
In the related art, there are a number of solutions attempting to isolate different computing environments on a single computer. However, such solutions do not provide a complete air gapping architecture. Furthermore, such solutions often suffer from user experience issues.
As a prime example, isolation solutions are based on virtual machine (VM) technologies. That is, VMs are containers in which applications and guest operating systems can be executed. By design, all VMs are isolated from one another. This isolation enables multiple virtual machines to run securely while sharing hardware.
Although virtual machines share hardware (e.g., CPU, memory, and I/O devices, etc.), a guest operating system running on an individual virtual machine cannot detect any device other than the virtual devices made available to the guest operating system. In various virtualization environments, a hypervisor acts as an interface between the guest operating system and the host operating system for some or all of the functions of the guests. A host operating system directly interacts with the hardware. A host operating system may be Windows®, Linux®, and the like.
Endpoints (e.g., desktop or laptop computer) configured with VM isolation does not provide a complete defense against malicious code. One vulnerability point in such virtualization environments is the host operating system. That is, hackers can exploit security vulnerabilities integrated in such operating systems to propagate malicious code to the hypervisors and then to the guest operating systems. Further, a user can install malicious software directly on the host operating systems (i.e., outside of the virtualization environment). To prevent users from installing software directly on the host operating system, such an operating system should be restricted. However, such an approach limits the user experience as the user cannot install applications, plug-ins, change settings, and so on.
In addition, to limited operations that can be performed by users on endpoints configured with VM isolation, the look-and-feel of the computing environment is different from unrestricted endpoints. For example, many standard user experience (UX) features are not available at all on the restricted endpoints. For example, a user cannot view, on the endpoint's desktop, multiple windows of different applications executed on different VMs. As another example, the user cannot copy data (e.g., text snippet) from an application executed in one VM's environment to another VM's environment. These and more other UX functions being disabled on restricted endpoints, significantly limits the ability to freely and easily interact and perform actions on the user device. Thus, the user experience is negatively affected. As a result, the users would prefer to use unrestricted and unsecured endpoints with full UX capabilities.
It would therefore be advantageous to provide a solution that would overcome the deficiencies noted above.